package fachklassen.entities;

import java.util.ArrayList;
import java.util.List;

import fachklassen.controls.Kundenverwaltung;
import fachklassen.controls.Produktverwaltung;

public class Bestellung {
	
	private int bstnr;
	private static int bstzaehler=0;
	private Kunde kunde;
	private List<Bestellposten> posten;
	
	public Bestellung(int knr, Kundenverwaltung kv){
		this.bstnr=++bstzaehler;
		this.kunde= kv.gibKunde(knr);
		this.posten= new ArrayList<Bestellposten>();
	}	
	
	
	
	/*?*/
	public void ergaenzen(int prodNr, int anzahl, Produktverwaltung prodverwaltung) {
		Bestellposten bp = new Bestellposten(prodNr, anzahl, prodverwaltung);
		posten.add(bp);
	}
	
	public void aendern(int prodNr, int anzahl) {
		for(Bestellposten bp : posten) {
			if(bp.getProdnr() == prodNr) {
				bp.setAnzahl(anzahl);
			}
		}
	}
	
	public void loeschen(int prodNr) {
		for(int i=0; i<posten.size(); i++) {
			if(posten.get(i).getProdnr() == prodNr) {
				posten.remove(i);
			}
		}
		/*
		for(Bestellposten bp : posten) {
			if(bp.getProdnr() == prodNr) {
				posten.remove(bp);
			}
		}
		*/
	}
	
	public int preisBerechnen() {
		int e = 0;
		for(Bestellposten bp : posten) {
			e += bp.gibVerkaufspreis();
		}
		return e;
	}
	
	/* Aufgabenteil c */
	public int mengeProduktBerechnen(int prodNr) {
		int e = 0;
		for(Bestellposten bp : posten) {
			if(bp.gibProduktNr() == prodNr) {
				e++;
			}
		}
		return e;
	}
	/* Aufgabenteil c ENDE */
	
	
	/*/?*/
	
	

	public int getBstnr() {
		return bstnr;
	}

	@Override
	public String toString(){
		StringBuffer sb= new StringBuffer();
		sb.append("Bestellung "+bstnr+": Kunde "+kunde+"\n");
		for (Bestellposten p:posten){
			sb.append(p.toString());
			sb.append("\n");
		}
		return sb.toString();
	}

	public int gibKundennummer() {
		return kunde.getKnr();
	}

}
